<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>LZXリファレンス dataset</title>
  <othercredit role="translator">
    <firstname>Atuo</firstname>
    <surname>Seki</surname>
        <contrib>2006/05/11　翻訳初版</contrib>
 </othercredit>
<link rel="STYLESHEET" type="text/css" href="../lps/includes/styles.css" /></head>
<body>

<!-- ===================================================================== -->
<!-- = XML information goes here                                         = -->
<!-- ===================================================================== -->
<lzelement title="Dataset">
    <lztier>LFC</lztier>
    <lzcategory>Data</lzcategory>
    <lzshortdesc>
            メモリにおけるXMLスタイルのデータ階層構造。
    </lzshortdesc>
    <lztag> tag-top-level-dataset.xml </lztag>
    <lzapi>api-lzdataset.xml</lzapi>
</lzelement>
<p><tagname>dataset</tagname>タグはローカルデータセットを定義します。
datasetの名前はviewの<attribute>datapath</attribute>属性で使用されます。
</p>

<p>
<tagname>dataset</tagname>の<attribute>src</attribute>属性の要素を
アプリケーションがコンパイルされた時に取得するか、動作時に取得するかの指定：
</p>
<ul>
<li>もしsrc属性がURLなら、アプリケーションが実行された時にsrc属性のURLへ
リクエストして返ってきたXMLのデータセットです。</li>
<li>もしsrc属性がパス名なら、データセットはパス名で示すXMLファイルで、
コンパイルされアプリケーションの中に入れます。</li>
<li>src属性に何も無ければ、データセットは<tagname>dataset</tagname>
内の内容になります。</li>
</ul>

<p>OpenLaszloアプリケーションの全てのデータは一つ又は複数のdatasetで制御します。
与えられたデータセットは通常、アプリケーション実行の間に変更されるか、
または再びセットされるかもしれない概念的なデータセットです。
datasetのデータは<tagname link="true">datapointer</tagname>
かサブクラスのインスタンスを使用することでアクセスできます。
データセットの表示は</p>

<ul>
<li>ローカルデータ(すなわち、コンパイル後の静的なデータ)か、</li>
<li>httpデータ(HTTPから返されたXMLのデータ)</li>
</ul>

<p>
<a href="datasource.html">datasource</a>にデータソースが
明らかに含まれない場合、データソースのインスタンスを作成しそれに入れるでしょう。
datasetは<code>doRequest</code>を呼ぶ事によってデータの要求、
又は動作時の再要求がされます。次に、要求結果がアプリケーションに返され、datasetの
<a href="#attr-ondata">ondata</a>イベントが実行されます。 
データセットとバインドされている<a href="datapointer.html">datapointer</a>
もこの時<a href="datapointer.html#attr-ondata">ondata</a>イベントを実行するでしょう。
</p>
<p>データとデータセットに関して詳しくは
<a href="${dguide}data-structures.html">Developers's Guide</a>をご覧ください。
</p>
<p>
<b>SOLOアプリケーションのDataset。</b>
Datasetはproxiedされた物とSOLOアプリケーション時とでは機能性がわずかに異なって実装されます。
例えば、SOLOアプリケーションではhttpレスポンスヘッダの取得が不可能です。
また、余白は異なった扱われ方をするかもしれません。これらについては
<a href="${dguide}proxied.html">Developer's Guide</a>をご覧ください。
</p>

<p>
以下はLaszloウェブサイトのCGIへ天気予報のXMLを要求する例です。</p>

<example title="Making a request using a dataset">
&lt;canvas height="250" width="800" debug="true"&gt;
 &lt;debug y="100"/&gt; 
 &lt;dataset type="http" name="weatherdata"
          src="http://www.laszlosystems.com/cgi-pub/weather.cgi"/&gt; 
 &lt;view&gt;
    &lt;inputtext width="90" name="t"&gt;zip&lt;/inputtext&gt;
    &lt;button&gt;  submit
      &lt;method event="onclick"&gt; var d = canvas.datasets.weatherdata;
        Debug.write("sending request for weather data.");
        d.setQueryString({zip : parent.t.getText()});
        d.doRequest(); 
      &lt;/method&gt;
    &lt;/button&gt;
    &lt;datapointer xpath="weatherdata:/weather"&gt;
      &lt;method event="ondata"&gt;
        var duplicate_pointer = this.dupePointer();
        duplicate_pointer.selectChild();
        while (duplicate_pointer.selectNext()){
          Debug.write(duplicate_pointer.serialize());
        }
      &lt;/method&gt;
    &lt;/datapointer&gt;
    &lt;simplelayout axis="x"/&gt;
  &lt;/view&gt;
&lt;/canvas&gt; 
</example>
</body>
</html>
<!-- * X_LZ_COPYRIGHT_BEGIN ***************************************************
* Copyright 2001-2004 Laszlo Systems, Inc.  All Rights Reserved.              *
* Use is subject to license terms.                                            *
* X_LZ_COPYRIGHT_END ****************************************************** -->
